package cn.iocoder.yudao.module.trade.controller.admin.depositorder.vo;

import cn.iocoder.yudao.module.trade.controller.admin.depositorderreturn.vo.DepositOrderReturnRespVO;
import cn.iocoder.yudao.module.trade.controller.admin.depositorderreturnlog.vo.DepositOrderReturnLogRespVO;
import cn.iocoder.yudao.module.trade.dal.dataobject.depositproductrelation.DepositProductRelationDO;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
import java.util.List;

import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 押金信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DepositOrderRespVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27840")
    private Long id;

    @Schema(description = "对外展示", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("押金单号")
    private String code;

    @Schema(description = "燃气户id", example = "17855")
    @ExcelProperty("燃气户id")
    private Long crmMemberUserId;

    @Schema(description = "部门id", example = "14743")
    @ExcelProperty("部门id")
    private Long deptId;

    @Schema(description = "部门名", example = "李四")
    @ExcelProperty("部门名")
    private String deptName;

    @Schema(description = "支付方式0微信1支付宝2银行卡")
    @ExcelProperty("支付方式")
    private Integer payment;

    @Schema(description = "经办人id可选多个 逗号分割", example = "29342")
//    @ExcelProperty("经办人id")
    private String operatorId;

    @Schema(description = "经办人名称", example = "29342")
    private String operatorName;

    @Schema(description = "总押金")
    @ExcelProperty("总押金")
    private Integer depositAmount;

    @Schema(description = "租金价格", example = "8306")
    @ExcelProperty("租金价格")
    private Integer rentPrice;

    @Schema(description = "应收押金")
    @ExcelProperty("应收押金")
    private Integer toAmount;

    @Schema(description = "实收押金")
    @ExcelProperty("实收押金")
    private Integer inAmount;

    @Schema(description = "押金余额")
    @ExcelProperty("押金余额")
    private Integer balance;

    @Schema(description = "支付状态", example = "2")
    @ExcelProperty("支付状态")
    private Integer payStatus;

    @Schema(description = "状态", example = "2")
    @ExcelProperty("状态")
    private Integer status;

    @Schema(description = "来源")
    @ExcelProperty("来源")
    private Integer source;

    @Schema(description = "工单id", example = "25853")
//    @ExcelProperty("工单id")
    private Long wipId;

    @Schema(description = "工单编码")
    @ExcelProperty("工单编码")
    private String wipCode;

    @Schema(description = "起租时间")
    @ExcelProperty("起租时间")
    private LocalDateTime startTime;

    @Schema(description = "经办日期")
    @ExcelProperty("经办日期")
    private LocalDateTime endTime;

    @Schema(description = "单据id ", example = "3131")
    @ExcelProperty("单据id ")
    private Long billId;

    @Schema(description = "回执")
    @ExcelProperty("回执")
    private Integer receiptLabel;

    @Schema(description = "回执状态", example = "1")
    @ExcelProperty("回执状态")
    private Integer receiptStatus;

    @Schema(description = "回执时间")
    @ExcelProperty("回执时间")
    private LocalDateTime receiptTime;

    @Schema(description = "回执确认人", example = "李四")
    @ExcelProperty("回执确认人")
    private String receiptName;

    @Schema(description = "创建时间")
//    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新人")
//    @ExcelProperty("更新人")
    private String updater;

    @Schema(description = "商品名称")
    private String skuName;
    @Schema(description = "附件/图片")
    private String imageLink;
    @Schema(description = "备注")
    private String remark;
    @Schema(description = "备注")
    private String desipotRemark;

    @Schema(description = "押金内容")
    private String depositContent;
    @Schema(description = "起租日期状态1今天2昨天3自定义")
    private Integer startDayType;
    @Schema(description = "经办日期状态1今天2昨天3自定义")
    private Integer endDayType;

    @Schema(description = "户号")
    private String crmCode;
    @Schema(description = "燃气户姓名")
    private String crmName;
    @Schema(description = "燃气户联系电话")
    private String crmMobile;
    @Schema(description = "燃气户类型")
    private String crmType;
    @Schema(description = "燃气户身份证")
    private String crmCard;
    @Schema(description = "燃气户地址")
    private String crmAddress;
    @Schema(description = "钢瓶类型")
    private List<DepositProductRelationDO> relationDOS;

    /**
     *  押金详情图片展示
     */
    private String depositImage;
    // 钢瓶退瓶记录
    List<DepositOrderReturnRespVO> returnRespVOSlist;

    @Schema(description = "退瓶记录详情")
    List<DepositOrderReturnLogRespVO> returnLog;
    @Schema(description = "总押瓶数")
    private Integer steelCylinderTotal;

    @Schema(description = "退瓶数")
    private Integer bottleReturnCount;
    @Schema(description = "已退瓶数量", example = "8819")
    @ExcelProperty("已退瓶数量")
    private Integer bottleReturned;
    private String creator;

    private Integer residueCount;
}